MCP-Server
Admin Power Pack stellt einen Server für das Model Context Protocol (MCP) bereit, über den ein KI-Agent — etwa Claude Code, Claude Desktop, VS Code, Cursor, n8n oder ein selbst gebauter Agent — die STARFACE bedienen kann: Status und Verzeichnisse abfragen, Logs durchsuchen und, sofern freigegeben, Benutzer, Endgeräte und Wartung verwalten. Diese Seite ist die Referenz für Integratoren und alle, die einen MCP-kompatiblen Client an die Anlage anbinden.
Diese Schnittstelle ist für die Nutzung durch Drittsysteme freigegeben. Änderungen und Erweiterungen werden je Version in den Release Notes dokumentiert.
Diese Seite ist die technische Referenz. Wie Sie den Server aktivieren, Werkzeuge freigeben, einen Client anbinden und was das im Alltag bringt, beschreibt die Doku-Seite MCP-Server.
Grundlagen
- Typ: MCP über Streamable HTTP — JSON-RPC 2.0 per
POST, Antworten immer als einzelnes JSON-Objekt (application/json). Der Server ist zustandslos: Es gibt keinen SSE-Ereignisstrom und keineMcp-Session-Id;GETundDELETEwerden mit405beantwortet, JSON-RPC-Batches werden abgelehnt. - Endpunkt:
https://<starface-host>/fp/7ce0d8df/mcp/—7ce0d8dfist die feste Modulkennung von Admin Power Pack und auf jeder Anlage identisch. Der abschließende Schrägstrich ist zwingend erforderlich. - Protokollversionen:
2024-11-05,2025-03-26,2025-06-18und2025-11-25(bevorzugt). Unterstützte Methoden:initialize,ping,tools/list,tools/call; Notifications werden mit202und leerem Body quittiert. - Authentifizierung: statischer API-Token im Header
X-Fp-Token: <Token>— dieselben Tokens wie bei der HTTP-API, verwaltet im Tab STARFACE Verwaltung, Abschnitt Sicherheit, Schaltfläche API-Tokens (Achtung: Anfragen mit HeaderAuthorization: Bearerwerden durch die STARFACE beantwortet, weshalb Module derartige Anfragen nicht erhalten). - Abgelehnte Anmeldung: bewusst
403statt401— MCP-Clients werten401als Aufforderung, einen OAuth-Anmeldelauf zu starten, den dieser Server nicht anbietet. Die JSON-Antwort nennt die tatsächliche Ursache. - Nutzlast: JSON im Request-Body, maximal 40 MB je Anfrage.
- Lizenz: Der Endpunkt verlangt eine gültige Modullizenz und prüft sie bei jeder
Anfrage — ohne gültige Lizenz antwortet er mit
403(module_license_invalid). - Server-Identität:
initializemeldet den Namenstarface-admin-power-packund die Modulversion als Serverversion. - Verfügbar seit: Modulversion 26.8.19
Aktivierung & Konfiguration
Der MCP-Server ist ab Werk ausgeschaltet, und Werkzeuge sind deaktiviert — erreichbar ist nur, was ein Administrator ausdrücklich freischaltet. Die Konfiguration liegt in der Moduloberfläche: Tab , Abschnitt MCP-Server.
- Aktivierung/Deaktivierung Solange der MCP-Server deaktiviert ist, beantwortet der Endpunkt jede
Anfrage mit
403(mcp_disabled). - Endpunkt & Client-Snippets: Die Karte zeigt die Endpunkt-URL der Anlage und fertige Konfigurationsausschnitte für die drei gängigen Client-Varianten (siehe Client-Einrichtung). Der Token wird dort nie angezeigt — er ist nur beim Anlegen einmalig sichtbar.
- IP-Filter: eine Liste erlaubter Quelladressen und Subnetze (einzelne IPs oder
CIDR-Bereiche). Anfragen von anderen Adressen werden mit
403abgewiesen. Eine leere Liste bedeutet: kein Filter. Befindet sich ein Reverse Proxy vor der Anlage, lässt sich zusätzlich „Proxy-Header auswerten" aktivieren:X-Forwarded-Forwird dann berücksichtigt, wenn die Anfrage selbst von einem der eingetragenen vertrauenswürdigen Proxies stammt. - Werkzeug-Freischaltung: Je Zeile lässt sich ein Werkzeug ein- oder ausschalten. Ein nicht freigegebenes Werkzeug wird einem KI-Agenten gar nicht erst mitgeteilt.
Die Freigabemodi
Ein Modus ist nur dort wählbar, wo es etwas zu trennen gibt: bei den zwölf
mutate_-Werkzeugen, die sowohl ändernde als auch löschende Operationen anbieten.
| Modus | Bedeutung |
|---|---|
Ändern (WRITE) | Der Agent darf die ändernden Operationen des Werkzeugs ausführen, die löschenden nicht. Voreinstellung. |
Ändern und löschen (WRITE_DELETE) | Der Agent darf alle Operationen des Werkzeugs ausführen. |
Bei read_- und exec_-Werkzeugen gibt es keine Modus-Wahl: Der Ein-/Aus-Schalter ist dort
die gesamte Entscheidung. Dasselbe gilt für Werkzeuge, die ausschließlich löschen
(mutate_reports, mutate_call_history) — sie einzuschalten ist die Erlaubnis, sonst
hätte man ein aktives Werkzeug, das jeden Aufruf verweigert.
Ruft ein Agent eine löschende Operation im Modus Ändern auf, wird nichts angefasst. Er erhält einen Werkzeugfehler, der die Ursache nennt und auf die Modulkonfiguration verweist. Das ist eine Konfigurationsentscheidung, kein Fehler zum Wiederholen.
read_capabilities lässt sich nicht abschalten. Es liest nur und beantwortet die Frage,
welche Aufgaben die Anlage abdeckt — genau die Frage, die ein Agent stellt, bevor er
irgendetwas anfasst. Alles, was ändert oder handelt, muss dagegen abschaltbar sein.
Konventionen
Diese Regeln gelten für alle Werkzeuge; der Server nennt sie dem Client zusätzlich in den
instructions der initialize-Antwort:
operation-Argument: Jedes Werkzeug akzeptiert ein Argumentoperation; die gültigen Werte stehen in der Werkzeugbeschreibung (tools/list) und in der Werkzeugtabelle unten.operationundconfirmsind reservierte Namen und können nie Fachparameter sein.- Namenspräfix statt Beipackzettel:
read_liest und ändert nie etwas.mutate_ändert gespeicherte Konfiguration; dasselbe Werkzeug kann den alten Wert wieder zurückschreiben.exec_wirkt sofort auf das laufende System und lässt sich nicht rückgängig machen. Der Gegenstand hinter dem Präfix ist gleich —read_usersundmutate_userssind zwei Hälften derselben Sache. - Account-IDs: Benutzer und Gruppen werden über die numerische STARFACE-Account-ID
angesprochen, nicht über Anmeldenamen oder Rufnummer. Einen Benutzer löst
read_users/searchauf, eine Grupperead_groups/list. Die Account-ID einer Gruppe ist nicht deren Nebenstelle. - Paging: Einige Operationen sind seitenweise abrufbar. Die Beschreibung des Werkzeugs teilt dies mit.
Diese Operationen akzeptieren
limitundoffsetund meldentotalundtruncated. Alle übrigen liefern ihren gesamten Bestand. - Antwort-Budget: Das serialisierte Ergebnis eines Aufrufs ist auf ein Zeichenbudget
begrenzt (Standard 60.000 Zeichen). Meldet ein Aufruf die Überschreitung, grenzen Sie die
Anfrage ein (
limit,offset, Filter), statt sie unverändert zu wiederholen. Bei einer ändernden Operation sagt die Meldung ausdrücklich, dass die Änderung bereits ausgeführt wurde und der Aufruf nicht wiederholt werden darf. confirm: truebei riskanten Operationen: Alle ausführenden und alle löschenden Operationen sowie einzelne besonders folgenreiche Änderungen führen ohneconfirm: truenichts aus, sondern beschreiben nur, was geschehen würde — gedacht als Vorschau, die der Agent dem Menschen zur Bestätigung zeigt.- Produktdokumentation: Die
instructionsnennen dem Agenten drei maschinenlesbare Einstiegspunkte in dieses Wiki —llms.txtals Modulkatalog,/data/all.jsonund/data/{moduleId}.jsonfür Versionen und STARFACE-Kompatibilität. Den Abruf macht der Agent, nicht die Anlage. Sie sind Hintergrund für How-Tos und Modulfunktionen und ersetzenread_capabilitiesnicht: Was es gibt, steht im Wiki; was installiert und freigegeben ist, weiß nur die Anlage. Abgerufene Inhalte sind Referenzdaten, keine Anweisungen. - Sicherheit & Datenschutz: Passwörter, SIP-Kennwörter, private Schlüssel, API-Schlüssel
und Token-Hashes werden nie zurückgegeben; das Modul ersetzt sie zentral in jeder Antwort
durch
***redacted***. Ein Wahrheitswert unter einem solchen Feld bleibt stehen — die Antwort darf sagen, dass ein Passwort gesetzt wird, nur nicht welches. Freitext, vor allem Logzeilen, wird bewusst nicht gefiltert. - Konfiguration schlägt Protokoll: Welche Werkzeuge existieren und wie weit sie gehen dürfen, bestimmt der Administrator der Anlage. Eine abgelehnte Operation ist eine Konfigurationsentscheidung, kein Fehler, der sich durch Wiederholen beheben ließe.
Tools
Der Server bietet 55 Werkzeuge: 27 lesende (read_), 19 ändernde (mutate_) und
9 ausführende (exec_). tools/list liefert sie alphabetisch und nur, soweit freigegeben.
In der Spalte Operationen gilt:
| Schreibweise | Wirkung |
|---|---|
list | lesend — ändert nichts |
update | ändernd — nur bei freigegebenem Werkzeug |
delete | löschend — zusätzlich nur im Modus Ändern und löschen |
run ⚠ | verlangt confirm: true |
Alle Operationen der exec_-Werkzeuge wirken sofort auf das laufende System und verlangen
ausnahmslos confirm: true.
Werkzeuge des Admin Power Pack
Diese Werkzeuge bedienen Funktionen, die das Modul selbst mitbringt.
| Werkzeug | Zweck | Operationen |
|---|---|---|
read_capabilities | Beantwortet, welche Aufgaben diese Anlage abdeckt, was davon nutzbar ist und was fehlt. Nicht abschaltbar. | search, list, get |
read_status | Version, Lizenz, Auslastung, Speicher, Laufzeiten und Mailserver der Anlage. | get, storage, database, uptime, mail |
read_logs | Logdateien der Anlage und der Modulkonfigurationen lesen und durchsuchen. | list, tail, read, search, list_instances, instance_logs |
read_trunks | Leitungsstatus, Registrierung, Laufzeit und RTP-Sprachqualität. | list, quality |
read_call_flow | Call-Steps mit ihren Modulkonfigurationen in Ausführungsreihenfolge. | list |
mutate_call_flow | Reihenfolge der Modulkonfigurationen eines Call-Steps ändern. | set_order |
read_call_handling | Systemweite Call-Handling-Parameter lesen. | get |
mutate_call_handling | Systemweite Call-Handling-Parameter setzen. | update |
read_call_history | Rufliste abfragen und als CSV exportieren. | list, export |
mutate_call_history | Rufliste zeitraumbezogen bereinigen — löscht auch zugehörige Transkriptionen. | delete_cdr ⚠ |
read_redirects | Rufumleitungen aller Konten oder eines Kontos anzeigen. | list |
mutate_redirects | Bestehende Rufumleitung eines Kontos ändern. | update |
read_voicemail | Voicemailboxen und ihre Aufnahmedauer anzeigen. | list |
mutate_voicemail | Aufnahmedauer setzen oder alle auf den Standard zurücksetzen. | set_duration, reset_all ⚠ |
read_phones | SIP-Konten und verfügbare Gerätetypen anzeigen; Kennwörter bleiben verborgen. | list, get, list_device_types |
mutate_phones | SIP-Konten anlegen, ändern, sperren und löschen. | create, update, set_active ⚠, delete ⚠ |
read_devices | Gerätevorlagen, Telefone, Hintergrundbilder und Display-Logos anzeigen. | list, get, list_phones, list_wallpapers, list_logo_devices |
mutate_devices | Gerätevorlagen pflegen, Hintergrundbilder ablegen, Display-Logo setzen. | create, update ⚠, set_active ⚠, add_wallpaper, set_logo ⚠, reset_logo, delete ⚠ |
exec_devices | Telefone die Provisionierung neu laden lassen (check-sync, ohne Neustart). | resync ⚠ |
read_templates | Benutzervorlagen und Vorlagen-Timer lesen. | list, get, list_timers |
mutate_templates | Benutzervorlagen anlegen und löschen. | create, delete ⚠ |
exec_templates | Benutzervorlage auf ausgewählte Benutzer anwenden. | apply ⚠ |
read_schedules | Zeitgesteuerte Aktivitäten und den Katalog der Systemereignisse anzeigen. | list, get, list_events |
mutate_schedules | Zeitgesteuerte Aktivitäten anlegen, ändern, duplizieren, scharfstellen, löschen. | create, update, duplicate, set_active ⚠, delete ⚠ |
exec_schedules | Eine zeitgesteuerte Aktivität sofort auslösen. | run ⚠ |
read_reports | Systemmeldungen der Telefonanlage anzeigen. | list_reports |
mutate_reports | Systemmeldungen einzeln oder vollständig löschen. | delete_reports ⚠ |
exec_cleanup | Plattenplatz freigeben: Logs, Temp, Aufzeichnungen, Voicemails, Faxe, Firmware, Backups. | run ⚠ |
read_contacts | Adressbücher und Kontaktfelder anzeigen, Kontakte als CSV lesen, CSV-Import vorab prüfen. | list, export, analyze |
exec_contacts | Adressbuch als CSV per E-Mail versenden, CSV-Import durchführen. | send ⚠, commit ⚠ |
read_modules | Installierte Module, deren Konfigurationen und verfügbare Versionen anzeigen. | list, list_instances, get, list_versions |
mutate_modules | Modulkonfigurationen anlegen, umbenennen, (de)aktivieren, löschen; Modul deinstallieren. | create_instance, rename_instance ⚠, set_instance_state ⚠, delete_instance ⚠, uninstall ⚠ |
exec_modules | Module vom STARFACE-Update-Server installieren und aktualisieren. | install ⚠ |
read_diagnostics | Netzwerkdaten, Schnittstellen und Routen anzeigen; Ping, Traceroute und DNS ausführen. | get, list_interfaces, list_routes, ping, traceroute, resolve |
mutate_network | IPv4 der NGN-Schnittstelle, statische Routen und SIP-NAT ändern. | update_interface ⚠, create_route ⚠, update_nat ⚠, delete_route ⚠ |
exec_feature_request | Eine fehlende Funktion als Feature-Request an Fluxpunkt senden. | send ⚠ |
Werkzeuge der STARFACE
Diese Werkzeuge bedienen Bordmittel der Telefonanlage.
| Werkzeug | Zweck | Operationen |
|---|---|---|
read_users | Benutzer lesen, suchen und Präsenzstatus anzeigen. Hier finden Sie die accountId. | list, get, search, list_states |
mutate_users | Benutzer anlegen, ändern, Passwort setzen und löschen. | create, update, set_password ⚠, delete ⚠ |
read_groups | Gruppen und ihre Mitglieder lesen. | list, get, list_members |
mutate_groups | Gruppen anlegen und löschen, Mitglieder und Gruppenanmeldung verwalten. | create, add_members, remove_members ⚠, set_logon, delete ⚠ |
read_permissions | Berechtigungen und ihre Inhaber lesen. | list, get, list_holders |
mutate_permissions | Berechtigungen je Benutzer vergeben und entziehen. | grant, grant_administration ⚠, withdraw |
read_numbers | Interne und externe Rufnummern samt Belegung anzeigen. | list |
read_calls | Laufende Gespräche und aktive Kanäle anzeigen. | list, get, list_channels |
exec_calls | Gespräche beenden, Trunks neu registrieren, Telefone provisionieren oder zurücksetzen. | hangup ⚠, hangup_all ⚠, re_register ⚠, resync_phones ⚠, notify_phones ⚠ |
read_certificates | TLS-Zertifikate, Schlüsselpaare und den Zustand der Let's-Encrypt-Automatik anzeigen. | list, get, list_key_pairs, get_acme |
mutate_certificates | Zertifikate erzeugen, importieren, aktivieren, löschen; Let's Encrypt einrichten. | create_key_pair, create_csr, create_self_signed, import, set_active ⚠, update_acme ⚠, delete ⚠ |
exec_certificates | Let's-Encrypt-Lauf sofort ausführen und abgeholtes Zertifikat installieren. | run_acme ⚠, apply_acme_certificate ⚠ |
read_ip_whitelist | Von der Angriffserkennung ausgenommene IP-Adressen lesen. | list, get |
mutate_ip_whitelist | Einträge der Ausnahmeliste anlegen, ändern und entfernen. | create ⚠, update ⚠, delete ⚠ |
read_ip_blacklist | Von der Angriffserkennung gesperrte IP-Adressen lesen. | list, get |
mutate_ip_blacklist | IP-Adressen sperren, Einträge ändern und entsperren. | create ⚠, update, delete ⚠ |
read_time | Uhrzeit, Zeitzone, NTP-Zustand sowie erlaubte Zeitzonen und Zeitserver anzeigen. | get, list_timezones, list_ntp_servers |
mutate_time | Zeitzone, NTP-Zeitserver und Systemzeit ändern. | set_timezone ⚠, set_ntp_servers ⚠, set_time ⚠ |
Werkzeuge anderer Module
Diese Werkzeuge liefern nur dann Daten, wenn das genannte Modul installiert, konfiguriert und lizenziert ist.
| Werkzeug | Modul | Zweck | Operationen |
|---|---|---|---|
read_transcripts | Call Recording | Transkripte und KI-Zusammenfassungen aufgezeichneter Gespräche lesen. | get, get_summary, list_summaries |
Die verbindliche Beschreibung jedes Werkzeugs — einschließlich der Argumente je Operation
und der Angabe, welche Operationen Paging unterstützen — liefert tools/list; die
Werkzeugbeschreibungen sind englisch, weil KI-Agenten auf englische Werkzeugverträge
kalibriert sind. Werkzeug- und Operationsnamen sind stabile Verträge.
Client-Einrichtung
Die Karte MCP-Server der Moduloberfläche zeigt dieselben drei Ausschnitte mit bereits
eingesetzter Endpunkt-URL zum Kopieren an. Ersetzen Sie <token> durch den beim Anlegen
einmalig angezeigten API-Token.
- Claude Code
- Konfigurationsdatei (.mcp.json)
- Claude Desktop (stdio-Brücke)
claude mcp add --transport http starface https://pbx.example.de/fp/7ce0d8df/mcp/ \
--header "X-Fp-Token: <token>"
Für Clients mit nativer HTTP-Unterstützung (VS Code, Cursor, eigene Agenten auf Basis der gängigen MCP-SDKs):
{
"mcpServers": {
"starface": {
"type": "http",
"url": "https://pbx.example.de/fp/7ce0d8df/mcp/",
"headers": {"X-Fp-Token": "<token>"}
}
}
}
Clients ohne native HTTP-Unterstützung erreichen den Endpunkt über die lokale stdio-Brücke
mcp-remote; der Token wird per Umgebungsvariable übergeben:
{
"mcpServers": {
"starface": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://pbx.example.de/fp/7ce0d8df/mcp/",
"--header", "X-Fp-Token:${FP_TOKEN}"],
"env": {"FP_TOKEN": "<token>"}
}
}
}
Die gehosteten Claude-Oberflächen (claude.ai, Claude-Connectors) sind bewusst nicht Zielgruppe: Sie verbinden sich aus der Anthropic-Cloud und würden eine öffentlich erreichbare Anlage voraussetzen. Vorgesehen sind Clients, die aus dem Netz des Kunden heraus zugreifen.
„Welche Leitungen sind gestört?" — „Warum landen Anrufe der Hotline in der falschen
Warteschlange?" — „Die Platte ist voll, was kann weg?" Ein Administrator bindet die Anlage
per Snippet an Claude Code an und gibt zunächst nur read_status, read_trunks,
read_call_flow und read_logs frei — vier lesende Werkzeuge. Der Agent beantwortet solche
Fragen selbstständig aus Status, Konfiguration und Logs. Erst wenn sich das bewährt, kommt
exec_cleanup dazu, dessen Löschlauf weiterhin je Aufruf confirm: true verlangt.
Sicherheit
Ein schreibender Agent auf einer Telefonanlage ist ein ernstzunehmender Eingriff; der Server verlässt sich deshalb nicht auf eine einzelne Schutzmaßnahme, sondern auf eine Kette. Jede Anfrage durchläuft die Prüfungen in dieser Reihenfolge:
- HTTP-Methode — alles außer
POSTwird mit405beantwortet. Origin-Prüfung — ein vorhandener, fremderOrigin-Header wird mit403abgewiesen (Schutz gegen DNS-Rebinding aus dem Browser).- Hauptschalter — ist der MCP-Server ausgeschaltet, endet die Anfrage mit
403. - IP-Filter — Quelladresse wird gegen die Allowlist geprüft.
- API-Token —
X-Fp-Token; ein ungültiger Token endet mit403, ohne dass der Aufrufer etwas über den Lizenzstand erfährt. - Modullizenz — bei jeder Anfrage neu geprüft.
Danach greifen die Freigabe je Werkzeug, der Modus bei den zwölf Werkzeugen mit Modus-Wahl,
die confirm-Pflicht riskanter Operationen und die zentrale Schwärzung von Geheimnissen.
Was der Server nicht anbietet
Einige Fähigkeiten des Moduls haben bewusst kein Werkzeug:
| Nicht als Werkzeug verfügbar | Grund |
|---|---|
| Werksreset der Anlage | Ein einzelner Aufruf, der die Anlage leert, gehört nicht in eine Werkzeugliste. |
| root-Passwort setzen | Der Zugang zum Betriebssystem bleibt außerhalb der Reichweite eines Agenten. |
| SIP-Zugangsdaten im Klartext exportieren | Kennwörter verlassen die Anlage nicht über diese Schnittstelle. |
| API-Token-Verwaltung | Ein Token darf sich nicht selbst vermehren oder verlängern. |
| Testruflisten erzeugen | Synthetische Daten haben in produktiven Ruflisten nichts verloren. |
| EasySetup-Projekt anwenden | Eine Ersteinrichtung überschreibt zu viel auf einmal. |
Modul-Datei (.sfm) hochladen | Das wäre Codeausführung per Datei-Upload. Installiert wird ausschließlich per Modul-Kennung aus dem signierten Katalog (exec_modules / install). |
| Beliebige Modul-Handler aufrufen | Ein generischer Proxy würde den Token vom Administratorzugang zum Generalschlüssel machen. |
STARFACE-Neustart und STARFACE-Update haben zwar kein eigenes Werkzeug, lassen sich aber
über mutate_schedules / create und exec_schedules / run als Ereignis auslösen —
ebenso der Werksreset von Telefonen. Wer mutate_schedules oder exec_schedules freigibt,
gibt damit auch diese Aktionen frei. Geben Sie beide nur frei, wenn das gewollt ist.
Audit
Jeder Aufruf — auch jeder abgewiesene — erzeugt ein McpToolCalledEvent mit Zeitstempel,
Token-Bezeichnung, Quelladresse, Werkzeug, Operation, Modus, confirm-Flag, Dauer,
Ergebnisgröße und Ausgang; die Argumente des Aufrufs sind bewusst nicht enthalten. Über
EventBridge lässt sich das Ereignis an Syslog, Webhook oder E-Mail
weiterleiten — Feldreferenz unter
Ereignisse.
Behandeln Sie den API-Token wie ein Administrator-Passwort: je Client ein eigener Token, Übertragung nur über sichere Kanäle, Widerruf bei Verdacht — der Widerruf wirkt sofort.
Fehlerbehandlung
Transportfehler beantwortet der Endpunkt mit HTTP-Status und einem JSON-Objekt
(error-Code und message):
| Status | error | Situation |
|---|---|---|
405 | method_not_allowed | andere Methode als POST |
403 | origin_rejected | fremder Origin-Header (Cross-Origin-Zugriff) |
403 | mcp_disabled | Hauptschalter aus |
403 | address_not_allowed | Quelladresse nicht in der Allowlist |
403 | invalid_token | Token fehlt, ist ungültig, widerrufen oder abgelaufen |
403 | module_license_invalid | keine gültige Modullizenz |
503 | module_reloading | Modul wird gerade neu geladen — Aufruf kurz darauf wiederholen |
500 | internal_error | unerwarteter interner Fehler |
Innerhalb des Protokolls gelten die JSON-RPC-Fehlercodes:
| Code | Situation |
|---|---|
-32700 | ungültiges JSON im Body |
-32600 | leerer Body, fehlendes method, oder ein JSON-RPC-Batch (wird nicht unterstützt) |
-32601 | unbekannte Methode |
-32602 | fehlerhafte Parameter — auch bei unbekanntem oder nicht freigegebenem Werkzeug |
-32603 | interner Fehler |
Fachliche Fehler eines Aufrufs — unbekannte operation, Löschversuch im Modus Ändern,
fehlendes confirm: true, überschrittenes Antwort-Budget, von der Anlage abgelehnte
Aktionen — kommen dagegen als Werkzeugergebnis mit isError: true zurück: Der Text
beschreibt Ursache und Ausweg, so dass der Agent darauf reagieren kann.
Versionierung & Kompatibilität
Der MCP-Server ist seit Modulversion 26.8.19 verfügbar. Werkzeugnamen, Operationsnamen
und Feldnamen sind stabile Verträge; Erweiterungen erfolgen additiv (neue Werkzeuge, neue
Operationen, neue optionale Argumente und Felder) und werden in den
Release Notes dokumentiert. Neue Werkzeuge sind
nach einem Update grundsätzlich deaktiviert, bis ein Administrator sie freischaltet — ein
Modul-Update erweitert die Angriffsfläche also nie unbemerkt. Da der Server keinen
Ereignisstrom anbietet, erfährt ein verbundener Client von geänderten Freigaben erst beim
nächsten tools/list.